package com.wanghaixin.dao;

import com.wanghaixin.dto.QueryDTO;
import com.wanghaixin.pojo.SysMenu;
import com.wanghaixin.pojo.SysMenuExample;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

public interface SysMenuMapper {
    int countByExample(SysMenuExample example);

    int deleteByExample(SysMenuExample example);

    int deleteByPrimaryKey(Long menuId);

    int insert(SysMenu record);

    int insertSelective(SysMenu record);

    List<SysMenu> selectByExample(SysMenuExample example);

    SysMenu selectByPrimaryKey(Long menuId);

    int updateByExampleSelective(@Param("record") SysMenu record, @Param("example") SysMenuExample example);

    int updateByExample(@Param("record") SysMenu record, @Param("example") SysMenuExample example);

    int updateByPrimaryKeySelective(SysMenu record);

    int updateByPrimaryKey(SysMenu record);

    /*********************************************************************************************************************
     * @Author:  王海新
     * @Date:  15:52  2020/10/22
     * @Version:  1.0.0
     * @Description:  查询/搜索/排序
     */
    List<SysMenu> findMenuByPage(QueryDTO query);

    /*********************************************************************************************************************
     * @Author:  王海新
     * @Date:  21:12  2020/10/22
     * @Version:  1.0.0
     * @Description: 批量删除
     */
    int  deleteMenu(List<Long> ids);

    /*********************************************************************************************************************
     * @Author:  王海新
     * @Date:  9:23  2020/10/23
     * @Version:  1.0.0
     * @Description:  菜单树形树结构持久层
     */
    List<SysMenu> findMenu();

    /*********************************************************************************************************************
     * @Author:  王海新
     * @Date:  11:16  2020/10/25
     * @Version:  1.0.0
     * @Description:  根据用户id查询用户菜单权限
     */
    List<String> findPermsByUserId(@Param("userId") Long userId) ;

    /*********************************************************************************************************************
     * @Author:  王海新
     * @Date:  11:30  2020/10/28
     * @Version:  1.0.0
     * @Description:  查询一级目录
     */
    List<Map<String,Object>> findDirMenuByUserId(@Param("userId") Long userId);

    /*********************************************************************************************************************
     * @Author:  王海新
     * @Date:  11:32  2020/10/28
     * @Version:  1.0.0
     * @Description:  查询一级目录对应的菜单
     */
    List<Map<String,Object>> findMenuNotButtonByUserId(
            @Param("userId") Long userId,@Param("parentId") Long parentId);

}